
Page({
  data: {
    keywords: '',//搜索关键字
    heroList: [] as Heros[] //英雄列表
  },
  onLoad() {
    this.getHeroData(this.data.keywords)
      .then((data) => {
        this.setData({
          heroList: data
        })
      })
  },
// 定义一个名为 getHeroData 的方法，用于获取英雄数据
// 参数 keyword 是搜索关键词，默认为空字符串
getHeroData(keyword: string = '') {
  // 显示加载提示框，标题为 '英雄加载中...'
  wx.showLoading({ title: '英雄加载中...' });
  // 返回一个 Promise 对象，该对象在数据请求成功时解析为英雄数据数组
  return new Promise<Heros[]>((resolve, reject) => {
    // 显示一个简单的提示框，告知用户数据正在加载中
    wx.showToast({ title: '数据加载中...' });
    // 发起一个 GET 请求到指定的 API 接口，获取英雄搜索结果
    wx.request<SeverResponse<Heros[]>>({
      url: 'https://api-vue-base.itheima.net/api/lol/search', // API 接口的 URL
      method: 'GET', // 请求方法
      data: { q: keyword }, // 请求参数，其中 q 是搜索关键词
      success: (res) => {
        // 请求成功时，解析响应数据中的英雄数据并调用 resolve 方法
        resolve(res.data.data);
      },
      fail: () => {
        // 请求失败时，调用 reject 方法
        reject();
      },
      complete: () => {
        // 请求完成时，无论成功或失败，都隐藏加载提示框
        wx.hideLoading();
      }
    });
  });
},

  // 搜索
 // 定义一个名为 searchHero 的异步方法，用于搜索英雄信息
async searchHero() {
  // 调用 getHeroData 方法，传入用户输入的关键词，获取匹配的英雄列表
  const list = await this.getHeroData(this.data.keywords);
  // 判断返回的英雄列表是否不为空
  if (list?.length > 0) {
    // 如果列表不为空，则使用 setData 方法更新页面数据中的 heroList 为返回的列表
    this.setData({
      heroList: list
    });
  } else {
    // 如果列表为空，表示没有搜索到英雄，调用 wx.showToast 方法显示提示信息
    wx.showToast({
      title: '没有搜索到英雄', // 提示框标题
      icon: 'error' // 提示框图标样式，这里使用 'error' 表示错误或警告
    });
  }
},

  
})